科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道在Visual Basic中使用WinSock控件

在Visual Basic中使用WinSock控件

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

WinSock控件能够通过UDP协议(用户数据报协议)或TCP协议(数据传输协议)连接到远程的机器并进行数据交换。

作者:佚名 来源:BLOG 2007年10月14日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

UDP连接入门

  创建一个UDP应用程序比创建TCP程序更简单,因为UDP协议不需要一个确定的连接。在上面的TCP应用程序中,其中一个Winsock控件必须明确的被设置为“监听”,而另一个必须用连接方法发起连接。

  相反,UDP协议不需要明确的连接。要在2个控件之间传送数据,(连接的双方)必须完成三个步骤:

  ·确定远程主机属性为对方的计算机名;

  ·确定远程主机属性为第二个控件的本地端口属性;

  调用约定方法指定要被使用的本地端口。(下面将详细讨论该方法)

  ·创建一个的UDP连接端

  ·创建一个标准EXE工程;

  ·将默认窗体命名为frmPeerA;

  ·在窗体中添加一个Winsock控件,命名为udpPeerA;

  ·在属性(Properties)页,单击协议(Protocol),改为UDPProtocol;

  ·添加2个文本框控件窗体中,分别命名为txtSend和txtOutput;

  在窗体中添加下面代码:

Private Sub Form_Load()
' The control's name is udpPeerA
With udpPeerA
' IMPORTANT: be sure to change the RemoteHost
' value to the name of your computer.
.RemoteHost= "PeerB"
.RemotePort = 1001 ' Port to connect to.
.Bind 1002 ' Bind to the local port.
End With
frmPeerB.Show ' Show the second form.
End Sub

Private Sub txtSend_Change()
' Send text as soon as it's typed.
udpPeerA.SendData txtSend.Text
End Sub

Private Sub udpPeerA_DataArrival _
(ByVal bytesTotal As Long)
Dim strData As String
udpPeerA.GetData strData
txtOutput.Text = strData
End Sub

  创建第二个UDP连接端

  ·添加标准窗体到工程中;

  ·将窗体名改为frmPeerB;

  ·将窗体标题改为Peer B;

  ·在窗体中添加一个Windsock控件并命名为udpPeerB;

  ·在属性页中单击Protocol,改为UDPProtocol;

  ·添加2个文本框到窗体中,分别命名为txtSend和txtOutput;

  在窗体中添加下面代码:

Private Sub Form_Load()
' The control's name is udpPeerB.
With udpPeerB
' IMPORTANT: be sure to change the RemoteHost
' value to the name of your computer.
.RemoteHost= "PeerA"
.RemotePort = 1002 ' Port to connect to.
.Bind 1001 ' Bind to the local port.
End With
End Sub

Private Sub txtSend_Change()
' Send text as soon as it's typed.
udpPeerB.SendData txtSend.Text
End Sub

Private Sub udpPeerB_DataArrival _
(ByVal bytesTotal As Long)
Dim strData As String
udpPeerB.GetData strData
txtOutput.Text = strData
End Sub

  关于约定方法

  上面代码中所涉及的,在创建UDP应用程序时必须调用约定方法。这个约定的方法保留了控件用到的本地端口。例如,当你绑定控件到端口1001时,其他的应用程序都不能用该端口监听。当你希望阻止其他的应用程序使用某端口的时候,这个就很有用。

  这个约定方法也引起了争议。如果机器里有多个网络适配器,本地IP允许你指定用哪个适配器。如果你忽略了这个争议性问题,控件就会使用计算机控制面板设置中,在网络控制面板对话框里列出的第一个网络适配器。

  在使用UDP协议时,你可以自由的切换远程主机和远程端口属性,同时保留本地端口范围。但是在使用UDP协议时,你必须在改变远程主机和远程端口属性时关闭连接。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    闂傚倷绶¢崣搴ㄥ窗閺囩偐鏋庨柕蹇嬪灪婵ジ鏌曡箛瀣偓鏍綖閿燂拷

    濠电姷顣介埀顒€鍟块埀顒€缍婇幃妯诲緞閹邦剛鐣洪梺闈浥堥弲婊勬叏濠婂牊鍋ㄦい鏍ㄧ〒閹藉啴鏌熼悜鈺傛珚鐎规洘宀稿畷鍫曞煛閸屾粍娈搁梻浣筋嚃閸ㄤ即宕㈤弽顐ュС闁挎稑瀚崰鍡樸亜閵堝懎濮┑鈽嗗亝濠㈡ê螞濡ゅ懏鍋傛繛鍡樻尭鐎氬鏌嶈閸撶喎顕i渚婄矗濞撴埃鍋撻柣娑欐崌閺屾稑鈹戦崨顕呮▊缂備焦顨呴惌鍌炵嵁鎼淬劌鐒垫い鎺戝鐎氬銇勯弽銊ф噥缂佽妫濋弻鐔碱敇瑜嶉悘鑼磼鏉堛劎绠為柡灞芥喘閺佹劙宕熼鐘虫緰闂佽崵濮抽梽宥夊垂閽樺)锝夊礋椤栨稑娈滈梺纭呮硾椤洟鍩€椤掆偓閿曪妇妲愰弮鍫濈闁绘劕寮Δ鍛厸闁割偒鍋勯悘锕傛煕鐎n偆澧紒鍌涘笧閹瑰嫰鎼圭憴鍕靛晥闂備礁鎼€氱兘宕归柆宥呯;鐎广儱顦伴崕宥夋煕閺囥劌澧ù鐘趁湁闁挎繂妫楅埢鏇㈡煃瑜滈崜姘跺蓟閵娧勵偨闁绘劕顕埢鏇㈡倵閿濆倹娅囨い蹇涗憾閺屾洟宕遍鐔奉伓

    重磅专题
    往期文章
    最新文章